let userList = [
  {
    userId: 1,
    avatar:
      "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif",
    username: "admin",
    password: "111111",
    email: "admin@163.com",
    desc: "平台管理员",
    roles: ["平台管理员"],
    buttons: ["cuser.detail"],
    routes: ["home"],
    token: "Admin Token",
  },
  {
    userId: 2,
    avatar:
      "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif",
    username: "system",
    password: "111111",
    email: "system@163.com",
    desc: "系统管理员",
    roles: ["系统管理员"],
    buttons: ["cuser.detail", "cuser.user"],
    routes: ["home"],
    token: "System Token",
  },
]; // 初始化一个全局的用户列表变量

function createUserList(newData) {
  if (newData) {
    // 如果传入了新数据，则添加到列表中
    userList.push(newData);
  }
  // 返回当前的用户列表
  return userList;
}

// //用户信息数据
createUserList([]);

export default [
  // 用户注册接口
  {
    url: "/api/user/register", //请求地址
    method: "post", //请求方式
    response: ({ body }) => {
      //获取请求体携带过来的用户名与密码
      const { email, username, password } = body;
      //调用获取用户信息函数,用于判断是否有此用户
      const checkUser = createUserList().find(
        (item) =>
          item.email === email &&
          item.username === username &&
          item.password === password,
      );
      //有用户返回失败信息
      if (checkUser) {
        return { code: 201, data: { message: "已有此用户" } };
      }
      // 如果没有，创建新用户并添加到列表中
      const newUser = {
        userId: createUserList().length + 1, // 假设userId是自增的
        avatar:
          "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif",
        username,
        password,
        email,
        desc: "新用户",
        roles: ["普通用户"],
        buttons: [],
        routes: ["home"],
        token: "new Token",
      };
      createUserList(newUser); // 添加新用户到列表
      // 返回成功信息
      return { code: 200, data: {}, message: "注册成功" };
    },
  },
  // 用户登录接口
  {
    url: "/api/user/login", //请求地址
    method: "post", //请求方式
    response: ({ body }) => {
      //获取请求体携带过来的用户名与密码
      const { username, password } = body;
      //调用获取用户信息函数,用于判断是否有此用户
      const checkUser = createUserList().find(
        (item) => item.username === username && item.password === password,
      );
      //没有用户返回失败信息
      if (!checkUser) {
        return {
          code: 201,
          data: {},
          message: "账号或者密码不正确",
        };
      }
      //如果有返回成功信息
      const { token } = checkUser;
      return { code: 200, data: { token } };
    },
  },
  // 获取用户信息
  {
    url: "/api/user/info",
    method: "get",
    response: (request) => {
      //获取请求头携带token
      const token = request.headers.token;
      //查看用户信息是否包含有次token用户
      const checkUser = createUserList().find((item) => item.token === token);
      //没有返回失败的信息
      if (!checkUser) {
        return { code: 201, data: { message: "获取用户信息失败" } };
      }
      //如果有返回成功信息
      return { code: 200, data: { checkUser } };
    },
  },
];
